package com.geniusk.system.model.mapper;

import com.geniusk.system.model.pojo.Device;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;

@Mapper
public interface DeviceMapper {

    /**
     * 获取最新固件下载地址
     * @param deviceId 设备ID
     * @return 固件下载地址
     */
    String selectLatestFirmwareUrl(Long deviceId);

    /**
     * 获取最新固件版本
     * @param deviceId 设备ID
     * @return 固件版本
     */
    String selectLatestFirmwareVersion(Long deviceId);

    /**
     * 根据设备ID查询设备信息
     * @param deviceId 设备ID
     * @return 设备信息
     */
    Device selectDeviceById(Long deviceId);

    /**
     * 查询设备分页数据
     * @param device 查询条件
     * @return 分页数据
     */
    List<Device> selectDeviceByPage(Device device);

    /**
     * 查询发布设备列表
     * @return 发布设备列表
     */
    List<Device> selectPublicDeviceByPage();

    /**
     * 新增设备
     * @param device 设备信息
     * @return 新增行数
     */
    int insertDevice(Device device);

    /**
     * 修改设备
     * @param device 设备信息
     * @return 修改行数
     */
    int updateDevice(Device device);

    /**
     * 删除设备
     * @param ids 设备ID
     * @return 删除行数
     */
    int deleteDeviceByIds(Long[] ids);

    /**
     * 根据设备ID查询设备accessToken
     * @param deviceId 设备ID
     * @return 设备accessToken
     */
    String selectAccessTokenById(Long deviceId);

    /**
     * 更新视频访问令牌
     * @param param 设备授权信息
     * @return 修改行数
     */
    int updateAccessToken(HashMap<String,Object> param);
}